package com.xiaoyang.forum.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoyang.forum.common.code.Result;
import com.xiaoyang.forum.domain.dto.ArticleDTO;
import com.xiaoyang.forum.domain.dto.ArticleListDTO;
import com.xiaoyang.forum.domain.dto.ArticleModifyDTO;
import com.xiaoyang.forum.domain.pojo.Article;
import com.xiaoyang.forum.domain.vo.*;

import java.util.List;

/**
 * @author XiaoYang
 * @since 2025-08-14
 */
public interface IArticleService extends IService<Article> {

    ArticleUserNameVO create(Integer userId, ArticleDTO articleDTO);

    List<ArticleListVO> selectAll(ArticleListDTO ArticleListDTO);

    List<ArticleListVO> selectById(ArticleListDTO articleListDTO);

    ArticleUserVO getDetails(Long id);

    ArticleModifyVO modify(long userId, ArticleModifyDTO articleModifyDTO);

    ArticleLikeVO thumbsUp(long userId, Long articleId);

    ArticleVO deleteById(Long articleId, long userId);

    List<ArticleRelatedVO> getUserChoiceness(Long userId);

    List<ArticleUserLikeListVO> getUserThumbsUpList(Long userId);
}
